package ZhuanQuan;

import java.util.LinkedList;
import java.util.List;

/**
 * User: cool
 * Date: 2017/11/21
 * Time: 18:00
 */
public class Cycle {

    public static int cycle(int total, int k) {  //功能方法
        List<Integer> dataList = new LinkedList<Integer>();//创建链表对象
        for (int i = 0; i < total; i++)  //添加数据元素
            dataList.add(new Integer(i + 1));
        int index = -1;  //定义下标，模拟已经去掉一个元素，因此从-1开始
        while (dataList.size() > 1) { //一直循环去除数据，直到只剩下一个元素
            index = (index + k) % dataList.size();//得到应该出局的下标
            dataList.remove(index--);  //去除元素
        }
        return ((Integer) dataList.get(0)).intValue();//返回它的值
    }
    //主方法
    public static void main(String[] args) {
        System.out.println("该数字原来的位置是："+cycle(50, 3));
    }
}
